The present invention relates generally to communication systems. The present invention relates more particularly to a cable modem system wherein information is communicated between a plurality of cable modems and a cable modem termination system.
A cable modem network relies on the sharing of a common network media for the transfer of data between the Cable Modem Termination System (CMTS) and multiple Cable Modems (CM). Because this media is shared, both upstream and downstream network bandwidth must be conserved to maintain performance.
The Data Over Cable System Interface Specification (DOCSIS) introduced a concept of Payload Header Suppression (PHS). PHS allows a repetitive portion of certain payload headers to be suppressed by the transmitter and expanded by the receiver, thereby reducing the amount of data transmitted on the cable. This mechanism is implemented by software in first generation CM and CMTS devices, which produces significant processing overhead. This processing overhead serves to limit the number of CMs that can be supported by a single CMTS.
FIG. 1 illustrates a data packet being sent upstream with and without Payload Header Suppression. VoIP illustrates a normal RTP packet carried on an upstream channel. The beginning of the frame represents the physical layer overhead (FGPS) of FEC, guard time, preamble, and stuffing bytes. Stuffing bytes occur in the last code word and when mapping blocks to minislots. Next is the MAC layer overhead including the 6 byte MAC header with a 5 byte BPI Extended Header, the 14 byte Ethernet Header, and the 4 byte Ethernet CRC trailer. The VoIP payload uses a 20 byte IP header, an 8 byte UDP header, and a 12 byte RTP packet header. The voice payload is variable and depends upon the sample time and the compression algorithm used.
FIG. 1 also illustrates the same RTP packet with the Payload Header Suppression occurring in software. In the upstream, Payload Header Suppression begins with the first byte after the MAC Header Checksum. The 14 bytes Ethernet header, the 20 byte IP header, and the 8 byte UDP header have been suppressed, and a 2 byte PHS Extended Header element has been added, for a net reduction of 40 bytes. The suppressed bytes are designated xe2x80x9cPxe2x80x9d in FIG. 1. In this example of an established VOIP connection, these fields remain constant from packet to packet, and are otherwise redundant.
The detailed description that follows, describes a hardware mechanism which offloads a processing resource from the suppression and expansion duties. This mechanism reduces the processing resource requirements in both a CM and the CMTS, improving overall performance and allowing a larger number of CMs to be serviced by a single CMTS.
According to the invention, a data packet header that is to be transmitted over a cable network can be suppressed at the transmitting end and expanded on the receiving end to conserve bandwidth on the HFC network. Implementing this process in hardware, as opposed to software, reduces the processing resource requirements in both the CM and the CMTS.
Rules are used to determine which, if any, bytes are to be suppressed. These rules are determined at the CMTS and sent to the CM. The CM stores the rules in memory for later retrieval. When the CM receives a data packet, a header parser in the hardware searches for an extended header element. The extended header element contains an index which, together with a SID, is used to locate the appropriate rule in memory. The SID defines the type of service flow being used. The service flow is an indicator on where the data packet is directed and the quality of service that has been purchased by the subscriber. When the data packet is to be transmitted over a cable network, an extended header element is added. The extended header contains an index which, together with the SID, is used to locate a descriptor stored in memory.
A rule contains three pieces of information needed by hardware to perform payload header expansion: size, mask, and byte string. To simplify hardware accesses to memory, the size and mask are stored in a table together with a pointer to the byte string. Each table entry is a descriptor. The descriptor contains the size field and a mask. The pointer is set to an address in memory where the suppressed bytes are stored. Because the majority of suppressed bytes occur in the first 64 bytes of the payload and to reduce the memory burden at the CM, the first hardware implementation is limited to performing suppression and expansion in the first 64 bytes of the payload. Suppression or expansion of payload header bytes beyond the 64th byte and up to the DOCSIS limitation of 256 bytes is performed in software in the normal way. The hardware implementation can be extended to eliminate this limitation. The value of the size field determines if suppression is to occur in hardware or software. If the size field is greater than 0 and less than or equal to 64, suppression occurs in hardware. The mask is then retrieved from the descriptor and sent to a shift register. The bits in the mask are examined to determine their value. During suppression in the transmitter, if a bit has a value of 1, the corresponding byte is suppressed by being deleted from the data packet and not transmitted. If a bit has a value of 0, the byte is transmitted normally and is not suppressed. Once all the bits of the mask have been examined, the remainder of the data packet is transmitted over the cable network.
At the receiver, the bytes are reinserted back into the data packet header. This is done by implementing the mask again. Each bit in the mask is examined. If a bit contains a value of 1, the corresponding byte is retrieved from memory and is inserted back into the data packet. If a bit contains a value of 0, the next byte is taken off the cable. This process is repeated until all bits of the mask have been examined.